Skip to content

Conversation

@boomanaiden154
Copy link
Contributor

The shell feature only implies that we are not running on Windows now that the internal shell is enabled by default everywhere. Remove where we can and rewrite to the more intentional UNSUPPORTED: system-windows when we still need to prevent tests from running on Windows.

The shell feature only implies that we are not running on Windows now
that the internal shell is enabled by default everywhere. Remove where
we can and rewrite to the more intentional UNSUPPORTED: system-windows
when we still need to prevent tests from running on Windows.
@boomanaiden154 boomanaiden154 marked this pull request as ready for review December 23, 2025 19:20
@llvmbot llvmbot added compiler-rt compiler-rt:asan Address sanitizer compiler-rt:fuzzer compiler-rt:hwasan Hardware-assisted address sanitizer PGO Profile Guided Optimizations compiler-rt:msan Memory sanitizer compiler-rt:sanitizer labels Dec 23, 2025
@llvmbot
Copy link
Member

llvmbot commented Dec 23, 2025

@llvm/pr-subscribers-pgo

@llvm/pr-subscribers-compiler-rt-sanitizer

Author: Aiden Grossman (boomanaiden154)

Changes

The shell feature only implies that we are not running on Windows now that the internal shell is enabled by default everywhere. Remove where we can and rewrite to the more intentional UNSUPPORTED: system-windows when we still need to prevent tests from running on Windows.


Full diff: https://github.com/llvm/llvm-project/pull/173338.diff

15 Files Affected:

  • (modified) compiler-rt/test/asan/TestCases/Linux/allocator_oom_test.cpp (+2-2)
  • (modified) compiler-rt/test/asan/TestCases/Posix/deep_call_stack.cpp (+2-1)
  • (modified) compiler-rt/test/asan/TestCases/log-path_test.cpp (+1-4)
  • (modified) compiler-rt/test/asan/TestCases/scariness_score_test.cpp (+3-3)
  • (modified) compiler-rt/test/fuzzer/features_dir.test (+1-1)
  • (modified) compiler-rt/test/fuzzer/fork-sigusr.test (-1)
  • (modified) compiler-rt/test/fuzzer/merge-posix.test (-1)
  • (modified) compiler-rt/test/fuzzer/merge-sigusr.test (-1)
  • (modified) compiler-rt/test/fuzzer/sigint.test (+1-1)
  • (modified) compiler-rt/test/fuzzer/sigusr.test (-1)
  • (modified) compiler-rt/test/fuzzer/ulimit.test (+2-1)
  • (modified) compiler-rt/test/hwasan/TestCases/print-memory-usage.c (+2-1)
  • (modified) compiler-rt/test/memprof/TestCases/log_path_test.cpp (-3)
  • (modified) compiler-rt/test/msan/Linux/reexec_unlimited_stack.cpp (-1)
  • (modified) compiler-rt/test/profile/instrprof-hostname.c (+2-1)
diff --git a/compiler-rt/test/asan/TestCases/Linux/allocator_oom_test.cpp b/compiler-rt/test/asan/TestCases/Linux/allocator_oom_test.cpp
index c51e11fcb348a..e42ebf63f0d70 100644
--- a/compiler-rt/test/asan/TestCases/Linux/allocator_oom_test.cpp
+++ b/compiler-rt/test/asan/TestCases/Linux/allocator_oom_test.cpp
@@ -43,8 +43,8 @@
 // ASan shadow memory on s390 is too large for this test.
 // AArch64 bots fail on this test.
 // TODO(alekseys): Android lit do not run ulimit on device.
-// REQUIRES: shell, shadow-scale-3
-// UNSUPPORTED: android, target={{(s390|aarch64|powerpc64le).*}}
+// REQUIRES: shadow-scale-3
+// UNSUPPORTED: android, target={{(s390|aarch64|powerpc64le).*}}, system-windows
 
 #include <stdlib.h>
 #include <string.h>
diff --git a/compiler-rt/test/asan/TestCases/Posix/deep_call_stack.cpp b/compiler-rt/test/asan/TestCases/Posix/deep_call_stack.cpp
index c4e519fa61830..734c585c02472 100644
--- a/compiler-rt/test/asan/TestCases/Posix/deep_call_stack.cpp
+++ b/compiler-rt/test/asan/TestCases/Posix/deep_call_stack.cpp
@@ -1,5 +1,6 @@
 // Check that UAR mode can handle very deep recursion.
-// REQUIRES: shell
+// Requires ulimit
+// UNSUPPORTED: system-windows
 // TODO(boomanaiden154): This test currently fails with the internal
 // shell because python is not able to set RLIMIT_STACK. We should
 // reenable this when the behavior is fixed.
diff --git a/compiler-rt/test/asan/TestCases/log-path_test.cpp b/compiler-rt/test/asan/TestCases/log-path_test.cpp
index 22f077fb54680..410e36ec5fec6 100644
--- a/compiler-rt/test/asan/TestCases/log-path_test.cpp
+++ b/compiler-rt/test/asan/TestCases/log-path_test.cpp
@@ -1,9 +1,6 @@
 // FIXME: https://code.google.com/p/address-sanitizer/issues/detail?id=316
 // UNSUPPORTED: ios, android
 //
-// The for loop in the backticks below requires bash.
-// REQUIRES: shell
-//
 // RUN: %clangxx_asan  %s -o %t
 
 // Regular run.
@@ -35,7 +32,7 @@
 // RUN: not cat %t.log.*
 
 // FIXME: log_path is not supported on Windows yet.
-// XFAIL: target={{.*windows-msvc.*}}
+// UNSUPPORTED: system-windows
 
 #include <stdlib.h>
 #include <string.h>
diff --git a/compiler-rt/test/asan/TestCases/scariness_score_test.cpp b/compiler-rt/test/asan/TestCases/scariness_score_test.cpp
index 51ae040670bf0..8e5ccec4ff265 100644
--- a/compiler-rt/test/asan/TestCases/scariness_score_test.cpp
+++ b/compiler-rt/test/asan/TestCases/scariness_score_test.cpp
@@ -73,11 +73,11 @@
 // RUN: not %run %t 27 2>&1 | FileCheck %s --check-prefix=CHECK27
 // Parts of the test are too platform-specific:
 // REQUIRES: x86_64-target-arch
-// REQUIRES: shell
 // TODO(boomanaiden154): This test currently fails with the internal
 // shell because python is not able to set RLIMIT_STACK. We should
-// reenable this when the behavior is fixed.
-// UNSUPPORTED: system-darwin
+// reenable this when the behavior is fixed. Windows does not support
+// ulimit.
+// UNSUPPORTED: system-darwin, system-windows
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/compiler-rt/test/fuzzer/features_dir.test b/compiler-rt/test/fuzzer/features_dir.test
index ce63b3920708c..c6beec01bc3ab 100644
--- a/compiler-rt/test/fuzzer/features_dir.test
+++ b/compiler-rt/test/fuzzer/features_dir.test
@@ -1,5 +1,5 @@
 # Tests -features_dir=F
-# REQUIRES: linux, shell
+# REQUIRES: linux
 RUN: %cpp_compiler %S/SimpleTest.cpp -o %t-SimpleTest
 RUN: rm -rf %t-C %t-F
 RUN: mkdir %t-C %t-F
diff --git a/compiler-rt/test/fuzzer/fork-sigusr.test b/compiler-rt/test/fuzzer/fork-sigusr.test
index 088e63cae4311..4f796171fbd11 100644
--- a/compiler-rt/test/fuzzer/fork-sigusr.test
+++ b/compiler-rt/test/fuzzer/fork-sigusr.test
@@ -1,6 +1,5 @@
 # Check that libFuzzer honors SIGUSR1/SIGUSR2
 # Disabled on Windows which does not have SIGUSR1/SIGUSR2.
-REQUIRES: shell
 UNSUPPORTED: darwin, target={{.*windows.*}}, target=aarch64{{.*}}
 RUN: rm -rf %t
 RUN: mkdir -p %t
diff --git a/compiler-rt/test/fuzzer/merge-posix.test b/compiler-rt/test/fuzzer/merge-posix.test
index 6e37651e6fd29..7df12f45c7431 100644
--- a/compiler-rt/test/fuzzer/merge-posix.test
+++ b/compiler-rt/test/fuzzer/merge-posix.test
@@ -1,4 +1,3 @@
-REQUIRES: shell
 XFAIL: ios
 RUN: %cpp_compiler %S/FullCoverageSetTest.cpp -o %t-FullCoverageSetTest
 
diff --git a/compiler-rt/test/fuzzer/merge-sigusr.test b/compiler-rt/test/fuzzer/merge-sigusr.test
index 4e492775400b9..762ae0d106d28 100644
--- a/compiler-rt/test/fuzzer/merge-sigusr.test
+++ b/compiler-rt/test/fuzzer/merge-sigusr.test
@@ -1,7 +1,6 @@
 # Check that libFuzzer honors SIGUSR1/SIGUSR2
 # FIXME: Disabled on Windows for now because of reliance on posix only features
 # (eg: export, "&", pkill).
-REQUIRES: shell
 UNSUPPORTED: darwin, target={{.*windows.*}}
 RUN: rm -rf %t
 RUN: mkdir -p %t
diff --git a/compiler-rt/test/fuzzer/sigint.test b/compiler-rt/test/fuzzer/sigint.test
index ac482d79b8e28..0e239c3ce5385 100644
--- a/compiler-rt/test/fuzzer/sigint.test
+++ b/compiler-rt/test/fuzzer/sigint.test
@@ -1,4 +1,4 @@
-REQUIRES: shell, msan
+REQUIRES: msan
 UNSUPPORTED: target=arm{{.*}}
 
 # Check that libFuzzer exits gracefully under SIGINT with MSan.
diff --git a/compiler-rt/test/fuzzer/sigusr.test b/compiler-rt/test/fuzzer/sigusr.test
index c8a77ac63a6d7..c3d7adf8ea99b 100644
--- a/compiler-rt/test/fuzzer/sigusr.test
+++ b/compiler-rt/test/fuzzer/sigusr.test
@@ -1,6 +1,5 @@
 # FIXME: Disabled on Windows for now because of reliance on posix only features
 # (eg: export, "&", pkill).
-REQUIRES: shell
 UNSUPPORTED: darwin, target={{.*windows.*}}
 # Check that libFuzzer honors SIGUSR1/SIGUSR2
 RUN: rm -rf %t
diff --git a/compiler-rt/test/fuzzer/ulimit.test b/compiler-rt/test/fuzzer/ulimit.test
index e330a97cc07c5..a33af49117f63 100644
--- a/compiler-rt/test/fuzzer/ulimit.test
+++ b/compiler-rt/test/fuzzer/ulimit.test
@@ -1,4 +1,5 @@
-REQUIRES: shell
+# Requires ulimit
+UNSUPPORTED: system-windows
 RUN: %cpp_compiler %S/SimpleTest.cpp -o %t-SimpleTest
 RUN: ulimit -s 1000
 RUN: not %run %t-SimpleTest
diff --git a/compiler-rt/test/hwasan/TestCases/print-memory-usage.c b/compiler-rt/test/hwasan/TestCases/print-memory-usage.c
index 13652fbd921b0..b7e1e780e37e8 100644
--- a/compiler-rt/test/hwasan/TestCases/print-memory-usage.c
+++ b/compiler-rt/test/hwasan/TestCases/print-memory-usage.c
@@ -1,5 +1,6 @@
 // Tests __hwasan_print_memory_usage.
-// REQUIRES: shell
+// Requires ulimit
+// UNSUPPORTED: system-windows
 // RUN: %clang_hwasan %s -o %t
 // RUN: ulimit -s 1000
 // RUN: %run %t 2>&1 | FileCheck %s
diff --git a/compiler-rt/test/memprof/TestCases/log_path_test.cpp b/compiler-rt/test/memprof/TestCases/log_path_test.cpp
index 683ca67122c31..4c38bd56ebb64 100644
--- a/compiler-rt/test/memprof/TestCases/log_path_test.cpp
+++ b/compiler-rt/test/memprof/TestCases/log_path_test.cpp
@@ -1,6 +1,3 @@
-// The for loop in the backticks below requires bash.
-// REQUIRES: shell
-//
 // RUN: %clangxx_memprof  %s -o %t
 
 // stderr log_path
diff --git a/compiler-rt/test/msan/Linux/reexec_unlimited_stack.cpp b/compiler-rt/test/msan/Linux/reexec_unlimited_stack.cpp
index 8dee27047470e..61492ec34533f 100644
--- a/compiler-rt/test/msan/Linux/reexec_unlimited_stack.cpp
+++ b/compiler-rt/test/msan/Linux/reexec_unlimited_stack.cpp
@@ -1,6 +1,5 @@
 // MSAN re-execs on unlimited stacks. We use that to verify ReExec() uses the
 // right path.
-// REQUIRES: shell
 // RUN: %clangxx_msan -O0 %s -o %t && ulimit -s unlimited && %run %t | FileCheck %s
 
 #include <stdio.h>
diff --git a/compiler-rt/test/profile/instrprof-hostname.c b/compiler-rt/test/profile/instrprof-hostname.c
index c0b3426eeaa84..b2bc26d26d38b 100644
--- a/compiler-rt/test/profile/instrprof-hostname.c
+++ b/compiler-rt/test/profile/instrprof-hostname.c
@@ -3,7 +3,8 @@
 // RUN: %run uname -n | tr -d '\n' > %t.n
 // RUN: llvm-profdata merge -o %t.profdata %{readfile:%t.n}.%t-%{readfile:%t.n}.profraw_%{readfile:%t.n}
 // RUN: %clang_profuse=%t.profdata -o - -S -emit-llvm %s | FileCheck %s
-// REQUIRES: shell
+// Requires uname
+// UNSUPPORTED: system-windows
 
 int main(int argc, const char *argv[]) {
   // CHECK: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !prof ![[PD1:[0-9]+]]

Copy link
Contributor

@thurstond thurstond left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sanitizer changes LGTM (with two nits)

@boomanaiden154 boomanaiden154 merged commit bf93286 into llvm:main Dec 23, 2025
10 checks passed
@boomanaiden154 boomanaiden154 deleted the compiler-rt-requires-shell-12-22-25 branch December 23, 2025 20:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

compiler-rt:asan Address sanitizer compiler-rt:fuzzer compiler-rt:hwasan Hardware-assisted address sanitizer compiler-rt:msan Memory sanitizer compiler-rt:sanitizer compiler-rt PGO Profile Guided Optimizations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants